//防抖

const button = document.querySelector('#input')

function payMoney() {
    console.log("已剁");
   // console.log(this);
}

//防抖函数
function debounce(func, delay) {
    //难点一，使用高阶函数
    //   func();

    //难点三，利用作用域链（闭包）建立联系
    let timer;
    return function () {
        //难点二，不能清除没有定义的timer
        //let timer;

        //难点四，使用防抖函数后，this指向window（因为回调，运行时在window下），而不是button按钮
        let context =this;

        //js的函数没有设置参数，也是可以传入参数的。传入的参数给payMoney使用
        let args =arguments;
        clearTimeout(timer);
        timer = setTimeout(function () {
            func.apply(context,args)
        }, delay)
    }
}


button.addEventListener('click', debounce(payMoney, 1000));
